package common;

import java.rmi.*;
import java.util.ArrayList;

import client.game.TicTacToeButton;

import model.*;
import model.exceptions.*;

public interface ServerInterface extends Remote {

	void login(String name, String password, ClientInterface clientController) throws RemoteException, AbstractException;

	ArrayList<String> getAllUsers() throws RemoteException;

	void registerUser(String name, String password, ClientInterface clientController) throws RemoteException, AbstractException;

	void logout(String name) throws RemoteException;

	void takeMessage(Message message) throws RemoteException;

	void startGame(String text, String name) throws RemoteException, AbstractException;
	
	void takeChat(Message message) throws RemoteException;

	void stopGame(String name) throws RemoteException;

	void takeButton(ServerButton button, String name)throws RemoteException;

	User[] getHighScores() throws RemoteException;

	void restart(String name) throws RemoteException;
}